(function(designWidth, maxWidth) {
	var docEl = document.documentElement
	var metaEl,
		metaElCon
	var remStyle = document.createElement('style')
	var tid

	function refreshRem() {
		// var width = parseInt(window.screen.width) // uc有bug
		var width = docEl.getBoundingClientRect().width
		if (!maxWidth) {
			maxWidth = 540
		}
		if (width > maxWidth) { // 淘宝做法：限制在540的屏幕下，这样100%就跟10rem不一样了
			width = maxWidth
		}
		var rem = width * 100 / designWidth
		// var rem = width / 10 // 如果要兼容vw的话分成10份 淘宝做法
		//docEl.style.fontSize = rem + 'px' //旧的做法，在uc浏览器下面会有切换横竖屏时定义了font-size的标签不起作用的bug
		remStyle.innerHTML = 'html{font-size:' + rem + 'px}'
	}

	// 设置 viewport ，有的话修改 没有的话设置
	metaEl = document.querySelector('meta[name="viewport"]')
	// 20171219修改：增加 viewport-fit=cover ，用于适配iphoneX
	metaElCon = 'width=device-width,initial-scale=1,maximum-scale=1.0,user-scalable=no,viewport-fit=cover'
	if(metaEl) {
		metaEl.setAttribute('content', metaElCon)
	}else{
		metaEl = document.createElement('meta')
		metaEl.setAttribute('name', 'viewport')
		metaEl.setAttribute('content', metaElCon)
		if (docEl.firstElementChild) {
			docEl.firstElementChild.appendChild(metaEl)
		}else{
			var wrapper = document.createElement('div')
			wrapper.appendChild(metaEl)
			document.write(wrapper.innerHTML)
			wrapper = null
		}
	}

	//要等 wiewport 设置好后才能执行 refreshRem，不然 refreshRem 会执行2次；
	refreshRem()

	if (docEl.firstElementChild) {
		docEl.firstElementChild.appendChild(remStyle)
	} else {
		var wrap = document.createElement('div')
		wrap.appendChild(remStyle)
		document.write(wrap.innerHTML)
		wrap = null
	}

	window.addEventListener('resize', function() {
		clearTimeout(tid) //防止执行两次
		tid = setTimeout(refreshRem, 300)
	}, false)

	window.addEventListener('pageshow', function(e) {
		if (e.persisted) { // 浏览器后退的时候重新计算
			clearTimeout(tid)
			tid = setTimeout(refreshRem, 300)
		}
	}, false)

	if (document.readyState === 'complete') {
		document.body.style.fontSize = '16px'
	} else {
		document.addEventListener('DOMContentLoaded', function() {
			document.body.style.fontSize = '16px'
		}, false)
	}
})(750, 750)